package com.telit.uav.vo;

import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;


@Data
public class SysUserVo {

    private Integer id;

    @ApiModelProperty(value = "用户账号", dataType = "String")
    @NotNull(message = "该字段为必填项")
    @Size(max = 20, message = "该信息限定20个字符以内")
    private String username;

    @ApiModelProperty(value = "用户昵称", dataType = "String")
    @NotNull(message = "该字段为必填项")
    @Size(max = 20, message = "该信息限定20个字符以内")
    private String nickname;

    @ApiModelProperty(value = "性别", dataType = "String")
    @Size(max = 2, message = "该信息限定2个字符以内")
    private String gender;

    @ApiModelProperty(value = "身份证号", dataType = "String")
    @Size(max = 20, message = "该信息限定20个字符以内")
    private String idCardNumber;
    @ApiModelProperty(value = "联系地址", dataType = "String")
    @Size(max = 255, message = "该信息限定255个字符以内")
    private String address;

    @ApiModelProperty(value = "邮箱地址", dataType = "String")
    @Size(max = 255, message = "该信息限定255个字符以内")
    private String email;

    @ApiModelProperty(value = "手机号码", dataType = "String")
    private String phone;

    @ApiModelProperty(value = "座机号码", dataType = "String")
    private String telphone;

    @ApiModelProperty(value = "政治面貌", dataType = "String")
    @Size(max = 10, message = "该信息限定10个字符以内")
    private String political;

    @ApiModelProperty(value = "出生年月", dataType = "String")
    @Size(max = 10, message = "该信息限定10个字符以内")
    private String birth;

    @ApiModelProperty(value = "籍贯", dataType = "String")
    @Size(max = 50, message = "该信息限定10个字符以内")
    private String nativePlace;

    @ApiModelProperty(value = "QQ号", dataType = "String")
    @Size(max = 15, message = "该信息限定15个字符以内")
    private String qqNumber;

    @ApiModelProperty(value = "所属行政区划", dataType = "Integer")
    @NotNull(message = "行政区划为必选项")
    private Integer districtId;

    @ApiModelProperty(value = "所属组织机构", dataType = "Integer")
    @NotNull(message = "组织机构为必选项")
    private Integer orgId;

    @ApiModelProperty(value = "所属单位", dataType = "String")
    @Size(max = 20, message = "该信息限定20个字符以内")
    private String unit;

    @ApiModelProperty(value = "是否禁用", dataType = "Boolean")
    @NotNull(message = "该字段为必填项")
    private Boolean disabled;

    @ApiModelProperty(value = "是否删除", dataType = "Boolean")
    @TableLogic(value = "'0'", delval = "'1'")
    private Boolean deleted;

    @ApiModelProperty(value = "备注", dataType = "String")
    @Size(max = 255, message = "该信息限定255个字符以内")
    private String remark;

    @ApiModelProperty(value = "角色列表", dataType = "list")
    private List<SysRoleEntity> roleList;

}
